Due to advances in computing technology, businesses today are able to operate more efficiently when compared to substantially similar businesses only a few years ago. For example, internal networking enables employees of a company to communicate instantaneously by email, quickly transfer data files to disparate employees, manipulate data files, share data relevant to a project to reduce duplications in work product, etc. Furthermore, advancements in technology have enabled factory applications to become partially or completely automated. For instance, operations that once required workers to put themselves proximate to heavy machinery and other various hazardous conditions can now be completed at a safe distance therefrom.
Further, imperfections associated with human action have been minimized through employment of highly precise machines. Many of these factory devices supply data related to manufacturing to databases that are accessible by system/process/project managers on a factory floor. For instance, sensors and associated software can detect a number of instances that a particular machine has completed an operation given a defined amount of time. Further, data from sensors can be delivered to a processing unit relating to system alarms. Thus, a factory automation system can review collected data and automatically and/or semi-automatically schedule maintenance of a device, replacement of a device, and other various procedures that relate to automating a process.
While various advancements have been made with respect to automating an industrial process, utilization and design of controllers have been largely unchanged. In more detail, industrial controllers have been designed to efficiently undertake real-time control. For instance, conventional industrial controllers receive data from sensors and, based upon the received data, control an actuator, drive, or the like. These controllers recognize a source and/or destination of the data by way of a symbol and/or address associated with source and/or destination. More particularly, industrial controllers include communications ports and/or adaptors, and sensors, actuators, drives, and the like are communicatively coupled to such ports/adaptors. Thus, a controller can recognize device identity when data is received and further deliver control data to an appropriate device.
Unfortunately, traditional controllers and devices employed within automation industrial environments have fallen behind recent technological advances to which the automation industry has maintained stride for stride. Conventional controllers and devices are rigid and inflexible such that software associated therewith must be specifically tailored and/or programmed. In other words, each controller and/or device typically requires specific code or software in order to be utilized within an industrial process. Moreover, within the industrial automation industry, various programming languages exits and can be implemented to create and employ such processes. Adding to the complexity of programming controllers and devices is the inherent benefits and detriments of each programming language, wherein developers must choose among programming languages in order to create processes.
Some software development programs compile high-level control languages such as Ladder or SFC down to target system operating instructions. Often, the compilation is a compilation of higher level source code that has been translated to Programmable Logic Controller (PLC) target code such as C+ source code that is compiled to C+ executable format. One problem is these systems are often inflexible in that they only support one type of high-level language compilation. An even bigger problem is execution performance. The compilation at the target level is often inefficient and far removed from the actual target hardware language which is the form of the highest possible execution format.